<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>

  <body>
    <script>
      function User(fname, lname, age, loc) {
        this.firstName = fname;
        this.lastName = lname;
        this.age = age;
        this.location = loc;
      }
      var Seagull = new User("Seagull", "Anna", 22, "New Delhi");
      var tarush = new User("Tarush", "Balodhi", 34, "Bihar");
      Seagull.weapon = "Sword";
      Seagull.greet = function () {
        return "Hello World";
      };
      //不能向现有对象一样给构造函数添加新属性 ↓
      //   User.weapon = "Sword";
      //要向构造函数添加新属性 必须将其添加到构造函数中
      //也不能像对象一样给构造函数添加新方法

      //内置构造函数
      // let x1 = new String(); //一个新的String对象。
      // let x2 = new Number(); //一个新的number对象。
      // let x3 = new Boolean(); //一个新的布尔对象。
      // let x4 = new Object(); //一个新Object对象。
      // let x5 = new Array(); //一个新的Array对象。
      // let x6 = new RegExp(); //一个新的RegExp对象。
      // let x7 = new Date(); //一个新的date对象。
      // let x8 = new Function(); //一个新函数对象。
      //不要将Number、String或Boolean声明为对象

      //   let x1 = {};
      //   let x2 = "";
      //   let x3 = 0;
      //   let x4 = false;
      //   let x5 = [];
      //   let x6 = /()/;
      //   let x7 = function () {};
    </script>
  </body>
</html>
